package network

import (
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
)

type CloudNetworkInterface interface {
	VpcGreeter
	SubnetGreeter
	NATGreeter
	EIPGreeter
}

type Network struct {
	credentials *basic.Credentials
}

func NewNetwork(credentials *basic.Credentials) CloudNetworkInterface {
	return &Network{
		credentials: credentials,
	}
}

func (n *Network) VPC(region string) VpcInterface {
	return newVpc(n, region)
}

func (n *Network) Subnets(region string) SubnetInterface {
	return newSubnet(n, region)
}

func (n *Network) NAT(region string) NATInterface {
	return newNAT(n, region)
}

func (n *Network) EIP(region string) EIPInterface {
	return newEIP(n, region)
}

//
//func (n *Network) Route(region string) RouteInterface {
//	return newRoute(n, region)
//}
//
//func (n *Network) DNS(region string) DNSInterface {
//	return newDNS(n, region)
//}
